package com.paipaideli;

import com.paipaideli.common.base.BaseResponse;
import com.paipaideli.ui.home.bean.HomeBean;
import com.paipaideli.ui.home.bean.MineBean;
import com.paipaideli.ui.mine.address.bean.AddressBean;
import com.paipaideli.ui.mine.order.bean.LogisticsBean;
import com.paipaideli.ui.mine.order.bean.OrderBean;
import com.paipaideli.ui.home.bean.ProductListBean;
import com.paipaideli.ui.home.bean.TreeBean;
import com.paipaideli.ui.login.bean.RegisterAndLoginBean;
import com.paipaideli.ui.mine.head.bean.AssetsBean;
import com.paipaideli.ui.mine.head.bean.BankBean;
import com.paipaideli.ui.mine.head.bean.ProfitBean;
import com.paipaideli.ui.mine.order.bean.OrderDetailBean;
import com.paipaideli.ui.mine.realname.bean.RealNameBean;
import com.paipaideli.ui.news.bean.NewsBean;
import com.paipaideli.ui.pay.bean.AlipayBean;
import com.paipaideli.ui.pay.bean.FreeBean;
import com.paipaideli.ui.pay.bean.PriceBean;
import com.paipaideli.ui.pay.bean.WXpayBean;
import com.paipaideli.ui.price.bean.HistoryBean;
import com.paipaideli.ui.price.bean.IntoBean;
import com.paipaideli.ui.product.bean.DetailBean;
import com.paipaideli.ui.profit.bean.MentorBean;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.POST;

public interface ApiService {


    //获取验证码
    @POST("member/login/smscode")
    Observable<BaseResponse> sms(@Body RequestBody smsBody);

    //注册
    @POST("member/login/register")
    Observable<RegisterAndLoginBean> register(@Body RequestBody registerBody);

    //登录
    @POST("member/login/logIn")
    Observable<RegisterAndLoginBean> login(@Body RequestBody loginBody);

    //忘记密码
    @POST("member/login/forgetPwd")
    Observable<BaseResponse> forgetPwd(@Body RequestBody forgetPwdBody);

    //首页
    @POST("member/index/all")
    Observable<HomeBean> home(@Body RequestBody homeBody);

    //首页消息
    @POST("member/index/message")
    Observable<NewsBean> homeNews(@Body RequestBody homeNewsBody);

    //我的
    @POST("member/member/my")
    Observable<MineBean> mine(@Body RequestBody mineBody);

    //修改密码
    @POST("member/member/pwd")
    Observable<BaseResponse> modifyPwd(@Body RequestBody modifyBody);

    //我的资产
    @POST("member/member/assets")
    Observable<AssetsBean> assets(@Body RequestBody assetsBody);

    //累计收益
    @POST("member/popularize/record")
    Observable<ProfitBean> record(@Body RequestBody profitBody);

    //实名认证
    @POST("member/member/certificat")
    Observable<RealNameBean> certificat(@Body RequestBody certificatBody);

    //银行卡列表
    @POST("member/member/bank/list")
    Observable<BankBean> bank(@Body RequestBody bankBody);

    //添加银行卡
    @POST("member/member/bank/add")
    Observable<BaseResponse> bankAdd(@Body RequestBody bankAddBody);

    //修改银行卡
    @POST("member/member/bank/update")
    Observable<BaseResponse> bankModify(@Body RequestBody bankModifyBody);

    //提现
    @POST("member/member/withdrawal/apply")
    Observable<BaseResponse> apply(@Body RequestBody applyBody);

    //收益树
    @POST("member/popularize/tree")
    Observable<TreeBean> tree(@Body RequestBody treeBody);

    //摘取收益
    @POST("member/popularize/extract")
    Observable<BaseResponse> extract(@Body RequestBody extractBody);

    //一键摘取收益
    @POST("member/popularize/extractall")
    Observable<BaseResponse> extractAll(@Body RequestBody extractAllBody);

    //师徒
    @POST("member/popularize/pupil")
    Observable<MentorBean> pupil(@Body RequestBody pupilBody);

    //商品详情
    @POST("member/auction/detail")
    Observable<DetailBean> detail(@Body RequestBody detailBody);

    //进入拍场
    @POST("member/auction/into")
    Observable<IntoBean> into(@Body RequestBody intoBody);

    //获取房间
    @POST("member/auction/take")
    Observable<IntoBean> take(@Body RequestBody takeBody);

    //离开拍场
    @POST("member/auction/quit")
    Observable<BaseResponse> quit(@Body RequestBody quitBody);

    //拍价记录
    @POST("member/auction/bidrecord")
    Observable<HistoryBean> bidrecord(@Body RequestBody bidrecordBody);

    //拍品列表
    @POST("member/auction/list")
    Observable<ProductListBean> list(@Body RequestBody listBody);

    //订单列表
    @POST("member/order/list")
    Observable<OrderBean> orderList(@Body RequestBody orderListBody);

    //订单详情
    @POST("member/order/detail")
    Observable<OrderDetailBean> orderDetail(@Body RequestBody orderDetailBody);

    //物流信息
    @POST("member/order/logistic")
    Observable<LogisticsBean> logistic(@Body RequestBody logisticBody);

    //地址列表
    @POST("member/address/list")
    Observable<AddressBean> addressList(@Body RequestBody addressListBody);

    //新增地址
    @POST("member/address/add")
    Observable<BaseResponse> addAddress(@Body RequestBody addAddressBody);

    //编辑地址
    @POST("member/address/update")
    Observable<BaseResponse> updateAddress(@Body RequestBody updateAddressBody);

    //设置默认地址
    @POST("member/address/set/isUse")
    Observable<BaseResponse> addisUse(@Body RequestBody addisUseBody);

    //修改订单地址
    @POST("member/order/addr/change")
    Observable<BaseResponse> addChange(@Body RequestBody addChangeBody);

    //确认收货
    @POST("member/order/receive")
    Observable<BaseResponse> receive(@Body RequestBody receiveBody);

    //提醒发货
    @POST("member/order/remind")
    Observable<BaseResponse> remind(@Body RequestBody remindBody);

    //订单金额与余额
    @POST("member/order/price")
    Observable<PriceBean> price(@Body RequestBody priceBody);

    //余额支付
    @POST("member/pay/blance/pay")
    Observable<PriceBean> blancePay(@Body RequestBody blancePayBody);

    //支付宝支付
    @POST("member/pay/alipay/toPay")
    Observable<AlipayBean> AlipayPay(@Body RequestBody AlipayPayBody);

    //支付宝支付查询
    @POST("member/pay/alipay/query")
    Observable<BaseResponse> AlipayQuery(@Body RequestBody AlipayQueryBody);

    //支付宝预授权
    @POST("member/authfreeze/toFreee")
    Observable<FreeBean> free(@Body RequestBody freeBody);

    //支付宝预授权查询
    @POST("member/authfreeze/query")
    Observable<BaseResponse> freeQuery(@Body RequestBody freeQueryBody);

    //支付宝解除授权
    @POST("member/authfreeze/unFreeze")
    Observable<BaseResponse> unFreeze(@Body RequestBody unFreezeBody);

    //更新头像
    @POST("member/member/update")
    Observable<BaseResponse> update(@Body RequestBody requestBody);

    //微信支付
    @POST("member/pay/wxpay/toPay")
    Observable<WXpayBean> WXpayPay(@Body RequestBody WXpayBody);

    //微信支付查询
    @POST("member/pay/wxpay/query")
    Observable<BaseResponse> WXpayQueryPay(@Body RequestBody WXpayQueryBody);


}
